//服务器文件

//加载引入包
const http = require('http');
const url = require('url');

const router = require('./router/index')
//创建服务器函数,作为导出暴露使用
function startServer(){
    //创建原生服务器运行环境，并设定端口
    http.createServer(onRequest).listen(global.port,()=>console.log('服务器运行在3001端口'))
    //完成服务器的数据处理和跳转 req接收请求 res返回请求
    function onRequest(req,res){
        //获取浏览器请求的路径
        //这里的拆分路由的时候可以将所有router代码都放置到routers目录下处理
        const urlPath = url.parse(req.url).pathname;
        console.log(urlPath)   //这里的css等的文件也是会在这里进行路由访问对应路径的文件

        let postData = '';
        req.on('data',function(chunk){
            //接收所有浏览器发送过来的post数据
            postData += chunk
        }).on('end',function(){
            //end事件是所有的request在完成数据提交后都会触发的事件，get/post都会来到这里
            //这里可以使用req.method判断是get还是post请求
            //判断是否为get
            if(req.method === 'GET'){
                //对get进行取值
                postData = url.parse(req.url).query
            }
            // 访问路由
            // urlpath,getdata,req,res
            router.routerFun(urlPath,req,res,postData)
        })
        //访问路由
        //urlpath,getdata,req,res
        // router.routerFun(urlPath,req,res,postData)  //上面的end是异步的操作，如果end还没有做完这里的代码就会先执行
    }
}
// exports ==module.exports
module.exports.startServer = startServer;